﻿using System;
using System.Collections.Generic;
using eCommerce.Core.Domain.Orders;
using eCommerce.Core.Domain.Payments;
using eCommerce.Core.Domain.Shippings;

namespace eCommerce.Services.Orders
{
    public interface IOrderService
    {
        Order GetOrderById(int orderId);

        void DeleteOrder(Order order);


    //    IList<OrderSearchResult> SearchOrders(int customerId,int shopId, DateTime? startTime, DateTime? endTime,
    //OrderStatus? os, PaymentStatus? ps, ShippingStatus? ss, int pageIndex, int pageSize);

        IList<Order> GetOrdersByCustomerId(int customerId);
        void InsertOrder(Order order);

        void UpdateOrder(Order order);

        //OrderProductVariant GetOrderProductVariantById(int orderProductVariantId);
        //void DeleteOrderProductVariant(OrderProductVariant orderProductVariant);

        IList<Order> GetOrdersByTradeId(int tradeId);
        Order GetOrderByIdAndCustomerId(int orderId, int id);
    }
}